/** \file
 \brief Verlet Step implementation.
 */

#ifndef FASTMD_VERLET_INCLUDED
#define FASTMD_VERLET_INCLUDED 1

#include "core/step.hpp"

namespace FastMD 
{
	
	class Verlet : public Step
	{
	public:
		const Real half_dt;
		virtual ~Verlet() throw();
		explicit Verlet(const Real time_step) throw();
		
		virtual size_t vectors() const throw();
		virtual void   predict( Frame &frame ) throw();
		virtual void   correct( Frame &frame, const bool isothermal ) throw();
		
	private:
		YOCTO_DISABLE_COPY_AND_ASSIGN(Verlet);
	};
	
}

#endif
